program frecventa_de_aparitie; uses crt; type nod=^ion; ion=record nr:integer; urm:nod; end; vector=array [1..100] of integer; var a,b,c:nod; v:vector; n:integer; procedure introducere; var i:integer; begin i:=1; new(a); c:=a; a^.urm:=nil; write('Dati informatia nodului:'); read(a^.nr); v[i]:=a^.nr; a^.urm:=nil; while (a^.nr<>0) do begin i:=i+1; new(b); write('Dati informatia nodului:'); read(b^.nr); v[i]:=b^.nr; a^.urm:=b; a:=b; end; n:=i-1; a^.urm:=nil; end; procedure afisare; begin writeln; a:=c; write('Lista este:'); while (a^.urm<>nil) do begin write(a^.nr,' '); a:=a^.urm; end; end; procedure frecventa; var i,j,f,k:integer; sw:boolean; begin for i:=1 to n do begin sw:=true; f:=0; for j:=1 to i-1 do if (v[i]=v[j]) then sw:=false; if sw then for k:=i to n do if v[i]=v[k] then inc(f); if f<>0 then begin writeln; write(v[i],' apare de ',f,' ori'); end; end; end; begin clrscr; introducere; afisare; frecventa; readkey; end.